package com.yuandian.api.business_monitor.vo;

import com.yuandian.utils.IpUtils;
import com.yuandian.utils.StringUtils;
import lombok.Data;

/**
 * 说明：端到端网络流量信息
 * @Author yanjun
 * @Date 2021/2/24 10:49
 */
@Data
public class EndToEndNetworkDetailVo {

	/** 网端Id */
	private String segmentId;

	/** 网端名称 */
	private String segmentName;

	/** 请求IP */
	private String requestIp;

	/** 请求端口 */
	private String requestPort;

	/** 响应IP */
	private String responseIp;

	/** 响应端口 */
	private String responsePort;

	/** 字节数 */
	private Long bytes;

	/** 字节率 */
	private Double byteRate;

	/** 包数 */
	private Long packets;

	/** 包率 */
	private Double packetRate;

	/** 比特率 */
	private Double bitRate;

	/** 重传率 */
	private Double retryRate;

	/** 重传包数 */
	private Long retryPackets;

	/** 连接失败数 */
	private Long connectFail;

	/** 建连耗时时间(微秒) */
	private Long connectTime;

	/** 服务器响应时间(微秒) */
	private Long serverResponseTime;

	/** 数据传输时间(微秒) */
	private Long networkTime;

	/** 开始时间 */
	private String startTime;

	/** 结束时间 */
	private String endTime;


	/**
	 * 整型IP 格式化 xx.xx.xx.xx
	 * @param responseIp 整型IP
	 */
	public void setResponseIp(String responseIp) {
		if(StringUtils.isNotEmpty(responseIp)){
			responseIp = IpUtils.decimalIpToStr(responseIp);
		}
		this.responseIp = responseIp;
	}


	/**
	 * 整型IP 格式化 xx.xx.xx.xx
	 * @param requestIp 整型IP
	 */
	public void setRequestIp(String requestIp) {
		if(StringUtils.isNotEmpty(requestIp)){
			requestIp = IpUtils.decimalIpToStr(requestIp);
		}
		this.requestIp = requestIp;
	}
}
